package com.wise.repository;

import com.wise.domain.DemoEntity;
import com.wise.domain.lombok.DemoEntityVo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;

import java.lang.annotation.Native;
import java.util.List;

/**
 * 注意这里并没有加上@Reposiroty注解，可以被自动扫描(@SpringBootApplication)
 * 另外两种方式：
 * 一、通过在本类添加@Repository注解，交给IOC管理
 * 二、通过在配置类里面加上@EnableJpaRepositories(basePackages = "com.wise.repository")去扫描
 */
public interface DemoRepository extends JpaRepository<DemoEntity, Integer>, JpaSpecificationExecutor<DemoEntity> {

    //注意这里List的泛型为DemoEntityVo,对比 @NamedNativeQuery(name = "DemoEntity.findAllDemoEntityVos")
    @Query(nativeQuery = true)
    List<DemoEntityVo> findAllDemoEntityVos();
}
